package com.shop.cloud.domain.hongfu;

import java.sql.Timestamp;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.shop.cloud.common.mybatis.BaseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 
 * activity-
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class Activity extends BaseEntity{

	private static final long serialVersionUID = 1L;
	
	public static final int TYPE_STORE = 1; 		// 门店活动
	public static final int TYPE_CO_SELLER = 2; 	// 合作商家活动
	
	public static final int STATUS_UNKNOWN = 0;	// 未知状态
	public static final int STATUS_NO_START = 1;	// 未开始
	public static final int STATUS_BEING = 2;	// 进行中
	public static final int STATUS_ENDED = 3;	// 已结束
    
	/**
	 * 类型
1：门店活动
2：合作商家活动
	 */
	@ApiModelProperty(value = "类型 1：门店活动 2：合作商家活动")
	 private Integer type;
	/**
	 * 活动标题
	 */
	@ApiModelProperty(value = "活动标题")
	 private String title;
	/**
	 * 活动流水号
	 */
	@ApiModelProperty(value = "活动流水号")
	 private String orderNo;
	/**
	 * 活动封面图
	 */
	@ApiModelProperty(value = "活动封面图")
	 private String coverImage;
	/**
	 * 开始时间
	 */
	@ApiModelProperty(value = "开始时间")	
	private Timestamp startTime;
	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")	
	private Timestamp endTime;
	/**
	 * 活动地区id
	 */
	@ApiModelProperty(value = "活动地区id")
	 private Long regionId;
	/**
	 * 活动详细地址
	 */
	@ApiModelProperty(value = "活动详细地址")
	 private String addrDetail;
	/**
	 * 限制人数。为0时为不限制人数。
	 */
	@ApiModelProperty(value = "限制人数。为0时为不限制人数。")
	 private Integer restrictNum;
	/**
	 * 价格。0为免费。
	 */
	@ApiModelProperty(value = "价格。0为免费。")
	 private Float price;
	/**
	 * 活动介绍
	 */
	@ApiModelProperty(value = "活动介绍")
	 private String introduce;
	/**
	 * 是否推荐首页，0不是，1是
	 */
	@ApiModelProperty(value = "是否推荐首页，0不是，1是")
	 private Integer isRecommend;
	/**
	 * 开启分销提成状态 0：是 1：否
	 */
	@ApiModelProperty(value = "开启分销提成状态 0：是 1：否")
	 private Integer distributeType;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")	
	 private Timestamp createTime;
	/**
	 * 状态 1：未开始 2：进行中 3：已结束
	 */
	@ApiModelProperty(value = "状态 1：未开始 2：进行中 3：已结束")
	 private Integer status;
	
	/**
	 * 删除标志 0：存在 1：不存在
	 */
	@ApiModelProperty(value = "0：存在 1：不存在")
	 private Integer existFlag;
	
	@ApiModelProperty(value = "分类id")
	private Long categoryId;
	
	/**
	 * @return the categoryId
	 */
	public Long getCategoryId() {
		return categoryId;
	}

	/**
	 * @param categoryId the categoryId to set
	 */
	public void setCategoryId(Long categoryId) {
		this.categoryId = categoryId;
	}

	/**
	 * 活动报名列表
	 */
	private List<ActivityEnroll> activityEnroll;
	
	/**
	 * 分销设置字符串
	 */
	private String distributionString;
	
	/**
	 * 分销设置展示
	 */
	private String distributeValueOne;
	
	/**
	 * 分销设置展示
	 */
	private String distributeValueTwo;
	
	/**
	 * 已报名人数
	 */
	private int existNum;
	
	/**
	 * 用户是否报名状态 0：未参加 1：已参加
	 */
	private int readyJoin = 0;
    
    public Activity(){
    
    }
    
    public Integer getType() {
        return this.type;
    }
    
    public void setType(Integer type) {
        this.type = type;
    }
    public String getTitle() {
        return this.title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getCoverImage() {
        return this.coverImage;
    }
    
    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }
    public Timestamp getStartTime() {
        return this.startTime;
    }
    
    public void setStartTime(Timestamp startTime) {
        this.startTime = startTime;
    }
    public Timestamp getEndTime() {
        return this.endTime;
    }
    
    public void setEndTime(Timestamp endTime) {
        this.endTime = endTime;
    }
    public Long getRegionId() {
        return this.regionId;
    }
    
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }
    public String getAddrDetail() {
        return this.addrDetail;
    }
    
    public void setAddrDetail(String addrDetail) {
        this.addrDetail = addrDetail;
    }
    public Integer getRestrictNum() {
        return this.restrictNum;
    }
    
    public void setRestrictNum(Integer restrictNum) {
        this.restrictNum = restrictNum;
    }
    public Float getPrice() {
        return this.price;
    }
    
    public void setPrice(Float price) {
        this.price = price;
    }
    public String getIntroduce() {
        return this.introduce;
    }
    
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public Integer getIsRecommend() {
        return this.isRecommend;
    }
    
    public void setIsRecommend(Integer isRecommend) {
        this.isRecommend = isRecommend;
    }
    public Integer getDistributeType() {
        return this.distributeType;
    }
    
    public void setDistributeType(Integer distributeType) {
        this.distributeType = distributeType;
    }
    public Timestamp getCreateTime() {
        return this.createTime;
    }
    
    public void setCreateTime(Timestamp createTime) {
        this.createTime = createTime;
    }
    public Integer getStatus() {
        return this.status;
    }
    
    public void setStatus(Integer status) {
        this.status = status;
    }

	public List<ActivityEnroll> getActivityEnroll() {
		return activityEnroll;
	}

	public void setActivityEnroll(List<ActivityEnroll> activityEnroll) {
		this.activityEnroll = activityEnroll;
	}

	public String getDistributionString() {
		return distributionString;
	}

	public void setDistributionString(String distributionString) {
		this.distributionString = distributionString;
	}

	public String getDistributeValueOne() {
		return distributeValueOne;
	}

	public void setDistributeValueOne(String distributeValueOne) {
		this.distributeValueOne = distributeValueOne;
	}

	public String getDistributeValueTwo() {
		return distributeValueTwo;
	}

	public void setDistributeValueTwo(String distributeValueTwo) {
		this.distributeValueTwo = distributeValueTwo;
	}

	public Integer getExistFlag() {
		return existFlag;
	}

	public void setExistFlag(Integer existFlag) {
		this.existFlag = existFlag;
	}

	public int getExistNum() {
		return existNum;
	}

	public void setExistNum(int existNum) {
		this.existNum = existNum;
	}

	public int getReadyJoin() {
		return readyJoin;
	}

	public void setReadyJoin(int readyJoin) {
		this.readyJoin = readyJoin;
	}

}